当前位置: 首页 > news >正文

合肥网站建设 微笑互联手机优化应用是怎么回事

合肥网站建设 微笑互联,手机优化应用是怎么回事,58同城兰州网站建设,免费个人网站+上传前言dapr大概的了解#xff0c;个人理解他就是一个分布式服务的管理#xff0c;把微服务常用的组件(缓存#xff0c;消息中间件、分布式锁、安全id4等)和监控以及服务注册、发现等等一系列功能以一个很抽象的方式管理起来。可能我们部署微服务用consul、ocelot、polly套件、…前言dapr大概的了解个人理解他就是一个分布式服务的管理把微服务常用的组件(缓存消息中间件、分布式锁、安全id4等)和监控以及服务注册、发现等等一系列功能以一个很抽象的方式管理起来。可能我们部署微服务用consul、ocelot、polly套件、orleans等去实现但是不可避免的会遇到服务之间的调用等问题更不用说服务本身的一些列骚操作dapr刚好帮助我们解决了这些服务之间调用Dapr.AspNetCore库客户端调用的都是dapr管理库Dapr.Clientnetcore使用就这两大库再加上各种yaml配置等当然它是不局限语言限制。下面用一个简单的例子来揭露一下他的真面目,项目也很直白一个client对外server就是提供服务的一方。代码至于代码更是简单的出奇服务端就只需要一行注入的代码业务代码不需要做任何改动。namespace Server {public class Program{public static void Main(string[] args){var builder WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllers().AddDapr(); //关键的服务注册只需要引入Dapr.AspNetCore包// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbucklebuilder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();var app builder.Build();// Configure the HTTP request pipeline.if (app.Environment.IsDevelopment()){app.UseSwagger();app.UseSwaggerUI();}//app.UseHttpsRedirection();app.UseAuthorization();app.MapControllers();app.Run();}} }using Microsoft.AspNetCore.Mvc;namespace Server.Controllers {[ApiController][Route([controller])]publicclass WeatherForecastController : ControllerBase{privatestaticreadonlystring[] Summaries new[]{Freezing, Bracing, Chilly, Cool, Mild, Warm, Balmy, Hot, Sweltering, Scorching};privatereadonly ILoggerWeatherForecastController _logger;public WeatherForecastController(ILoggerWeatherForecastController logger){_logger logger;}[HttpGet(Name GetWeatherForecast)]public IEnumerableWeatherForecast Get(){return Enumerable.Range(1, 5).Select(index new WeatherForecast{Date DateTime.Now.AddDays(index),TemperatureC Random.Shared.Next(-20, 55),Summary Summaries[Random.Shared.Next(Summaries.Length)]}).ToArray();}} } namespace Server {publicclass WeatherForecast{public DateTime Date { get; set; }publicint TemperatureC { get; set; }publicint TemperatureF 32 (int)(TemperatureC / 0.5556);publicstring? Summary { get; set; }} }下面就是客户端调用的代码,只需要引入包Dapr.Client包当然consul作为服务之间调用就是httpclient调用了。namespace Client {publicclass Program{publicstaticvoid Main(string[] args){var builder WebApplication.CreateBuilder(args);// Add services to the container.builder.Services.AddControllers();// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();var app builder.Build();// Configure the HTTP request pipeline.if (app.Environment.IsDevelopment()){app.UseSwagger();app.UseSwaggerUI();}//app.UseHttpsRedirection();app.UseAuthorization();app.MapControllers();app.Run();}} }using Dapr.Client; using Microsoft.AspNetCore.Mvc;namespace Client.Controllers {[ApiController][Route([controller])]publicclass WeatherForecastController : ControllerBase{privatereadonly ILoggerWeatherForecastController _logger;public WeatherForecastController(ILoggerWeatherForecastController logger){_logger logger;}[HttpGet(Name GetWeatherForecast)]public IEnumerableWeatherForecast Get(){//服务之间没有用httpclient调用用特有的dapr调用。var daprClient new DaprClientBuilder().Build();var content daprClient.InvokeMethodAsyncIEnumerableWeatherForecast(HttpMethod.Get, getwf, WeatherForecast).Result;_logger.LogInformation($获取wf成功:{content.ToArray().ToString()});return content.ToArray();}} } namespace Client {publicclass WeatherForecast{public DateTime Date { get; set; }publicint TemperatureC { get; set; }publicint TemperatureF 32 (int)(TemperatureC / 0.5556);publicstring? Summary { get; set; }} }这个例子仅仅只说明了用Dapr微服务之间的调用这个不是很服务但是部署和配置等一系列操作就需要docker基础了。首先要有虚拟机linux系统安装好docker本文没有用到任何yaml文件所以没用docker-compose。dapr的安装看官网还有初始化安装完docker ps看看这几个服务在不在。aspnetcore发布代码掠过下面是发布后的代码我直接拷贝到我的虚拟机home目录下面。开三个窗口打开Server、Client文件夹分别在对应文件夹执行命令 --app-id 后面就是dapr内部指定的唯一识别相当于httpclient的IP地址 --dapr-http-port就是dapr的地址端口--app-port就是dapr服务提供给外部的调用地址端口。打个比方一个dapr利弊一个docker,部署一个服务起一个docker服务之间通信那么也就成了docker之间的通信而且他负责自己服务的一切事情。看调用代码getwf就是Server在dapr起的唯一名字--app-id, WeatherForecast就是控制器类似于httpclient的 http://*:port/weatherforecast get调用。dapr run --app-id clientservice --dapr-http-port 5882 --app-port 5883 dotnet Client.dlldapr run --app-id getwf --dapr-http-port 5880 --app-port 5881 dotnet Server.dll //服务之间没有用httpclient调用用特有的dapr调用。var daprClient new DaprClientBuilder().Build();var content daprClient.InvokeMethodAsyncIEnumerableWeatherForecast(HttpMethod.Get, getwf, WeatherForecast).Result;_logger.LogInformation($获取wf成功:{content.ToArray().ToString()}); 查看dapr list可以看到有两个服务在运行中。正常情况我们调用虚拟机ip:5883/weatherforecast就可以了正常访问客户端拿到数据但是很不幸我失败了而且还没找到原因。部署的server服务后会有下面的打印信息而且我是可以通过5096端口访问的这说明问题出在dapr上而不是我们部署的问题。 官方文档介绍的不是很多而且我也只是近期才研究这个所以这个问题如果有能解答的万分感谢配置文件appsettings.json需要指定端口否则两个以上服务部署会默认5000冲突。以上的部署仅仅体现它的服务之间是怎么调用的代码实现。它的其他核心功能状态管理、缓存、异步通信、分布式锁、链路、监控、安全等一系列中间件几乎涵盖了微服务的零零碎碎。以前一直以为这个是运维的管理工具去研究实践才认识到代码层面也是需要大量时间学习就是各种中间件的使用。作为开发不去学习确实有点跟不上时代了。从docker、k8s 到dapr,对于面试开发也挺不容易。后续来了一天后查资料发现问题所在。dapr 的--app-port需要跟dotnet启动服的端口保持一致。比较看好daprnetcore微服务架构是个不错的选择还有未来也很看好。部署没问题了后面就是学习微服务中运用dapr的间件。
http://www.hkea.cn/news/14308846/

相关文章:

  • 如何用自己网站做大电商免费地方域名注册
  • 手机怎么建网站广告设计软件coreldraw教程
  • 国外设计网站怎么打开wordpress发布图片错位
  • 博天网站建设网络seoul怎么读
  • 湖南高端建设网站网站建设的阶段
  • 福建设计招标网站兰博沃金牛座手表官方网站
  • 免费网站自助建站系统wordpress首页显示推荐标志
  • 网站项目报价单模板免费下载网站搬家数据库配置
  • 可以做录音兼职的网站哪里找网站开发团队
  • 在线html5制作网站建设部网站事故快报
  • 本地广东中山网站建设白色网站配色
  • 兰溪企业网站搭建地址wordpress换域名安装
  • 免费公司网站模版网站的中文域名是什么
  • 青岛专业做网站优化临沂市网站建设
  • 物流网站开发在线购物商城网站建设
  • 江苏手机响应式网站建设网页 开发
  • 专业建站公司前景移动网站怎么做
  • 口碑好的盘锦网站建设网站建设淘宝属于什么类目
  • 站长权重惠州市建设局建工办网站
  • 毕业设计旅游网网站设计融资网站建设方案
  • 2018怎么做网站淘宝客自己动手做一个网页
  • 视觉中国的图片可以拿来做网站wordpress 菜单 消失
  • 做彩票网站违法企业综合型网站建设方案
  • 吉林响应式网站建设head first wordpress
  • 公网动态ip如何做网站wordpress引用群晖文件
  • 公司网站建设费用账务处理微信公众号登录失败
  • 网站外链建设与维护优秀企业门户网站建设
  • 成都中小企业网站建设我看别人做系统就直接网站下载文件
  • 自己有服务器怎么做网站wordpress大前端d84.1
  • 建设景区网站推文浙江大境软装设计公司