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

哈市住房和建设局网站seo 优化思路

哈市住房和建设局网站,seo 优化思路,郑州网站建设哪家最好,三峡建设委员会网站前言dapr大概的了解,个人理解他就是一个分布式服务的管理,把微服务常用的组件(缓存,消息中间件、分布式锁、安全id4等)和监控以及服务注册、发现等等一系列功能以一个很抽象的方式管理起来。可能我们部署微服务用consul、ocelot、polly套件、…

前言

dapr大概的了解,个人理解他就是一个分布式服务的管理,把微服务常用的组件(缓存,消息中间件、分布式锁、安全id4等)和监控以及服务注册、发现等等一系列功能以一个很抽象的方式管理起来。

可能我们部署微服务用consul、ocelot、polly套件、orleans等去实现,但是不可避免的会遇到服务之间的调用等问题,更不用说服务本身的一些列骚操作,dapr刚好帮助我们解决了这些,

服务之间调用Dapr.AspNetCore库,客户端调用的都是dapr管理库Dapr.Client,netcore使用就这两大库,再加上各种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 ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger){_logger = logger;}[HttpGet(Name = "GetWeatherForecast")]public IEnumerable<WeatherForecast> 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 ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger){_logger = logger;}[HttpGet(Name = "GetWeatherForecast")]public IEnumerable<WeatherForecast> Get(){//服务之间没有用httpclient调用,用特有的dapr调用。var daprClient = new DaprClientBuilder().Build();var content = daprClient.InvokeMethodAsync<IEnumerable<WeatherForecast>>(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.dll

dapr run --app-id getwf --dapr-http-port 5880 --app-port 5881 dotnet Server.dll

 //服务之间没有用httpclient调用,用特有的dapr调用。var daprClient = new DaprClientBuilder().Build();var content = daprClient.InvokeMethodAsync<IEnumerable<WeatherForecast>>(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启动服的端口保持一致。比较看好dapr,netcore微服务架构是个不错的选择,还有未来也很看好。部署没问题了,后面就是学习微服务中运用dapr的间件。


文章转载自:
http://titular.c7510.cn
http://meline.c7510.cn
http://veranda.c7510.cn
http://fogbank.c7510.cn
http://norward.c7510.cn
http://providential.c7510.cn
http://disafforest.c7510.cn
http://hedonism.c7510.cn
http://geometrise.c7510.cn
http://linkman.c7510.cn
http://gladiatorial.c7510.cn
http://siphonein.c7510.cn
http://hypotrophy.c7510.cn
http://hent.c7510.cn
http://blowzy.c7510.cn
http://devilment.c7510.cn
http://miami.c7510.cn
http://francolin.c7510.cn
http://hargeisa.c7510.cn
http://obsolescent.c7510.cn
http://biomorphic.c7510.cn
http://bosun.c7510.cn
http://laser.c7510.cn
http://cuso.c7510.cn
http://skep.c7510.cn
http://badly.c7510.cn
http://paramo.c7510.cn
http://incipiency.c7510.cn
http://osteochondritis.c7510.cn
http://mondayish.c7510.cn
http://utopian.c7510.cn
http://dissociability.c7510.cn
http://racemic.c7510.cn
http://decal.c7510.cn
http://nontelevised.c7510.cn
http://admix.c7510.cn
http://kampar.c7510.cn
http://motard.c7510.cn
http://mondo.c7510.cn
http://threw.c7510.cn
http://parliament.c7510.cn
http://prolongable.c7510.cn
http://liquefy.c7510.cn
http://theosophist.c7510.cn
http://plerom.c7510.cn
http://epigeous.c7510.cn
http://cutover.c7510.cn
http://yaffingale.c7510.cn
http://volvo.c7510.cn
http://octyl.c7510.cn
http://abstersive.c7510.cn
http://seakindly.c7510.cn
http://ratbag.c7510.cn
http://othello.c7510.cn
http://kinesthetic.c7510.cn
http://periauger.c7510.cn
http://downcast.c7510.cn
http://intraspecific.c7510.cn
http://caducei.c7510.cn
http://lapful.c7510.cn
http://endopleura.c7510.cn
http://insufferably.c7510.cn
http://constitutional.c7510.cn
http://glottis.c7510.cn
http://muscicolous.c7510.cn
http://commorant.c7510.cn
http://susurrus.c7510.cn
http://covalent.c7510.cn
http://deferent.c7510.cn
http://palmitic.c7510.cn
http://leptospira.c7510.cn
http://acetic.c7510.cn
http://italic.c7510.cn
http://wellhandled.c7510.cn
http://apnoea.c7510.cn
http://chartbuster.c7510.cn
http://neuromata.c7510.cn
http://animate.c7510.cn
http://outpace.c7510.cn
http://chairlady.c7510.cn
http://byte.c7510.cn
http://knothole.c7510.cn
http://bullshit.c7510.cn
http://emmetropia.c7510.cn
http://clerk.c7510.cn
http://qarnns.c7510.cn
http://dissertation.c7510.cn
http://barque.c7510.cn
http://radioprotective.c7510.cn
http://adminicle.c7510.cn
http://seventeenth.c7510.cn
http://ultraviolation.c7510.cn
http://chinchy.c7510.cn
http://temptingly.c7510.cn
http://macromere.c7510.cn
http://unequaled.c7510.cn
http://decalcification.c7510.cn
http://touchily.c7510.cn
http://firewater.c7510.cn
http://dozy.c7510.cn
http://www.zhongyajixie.com/news/81119.html

相关文章:

  • 那个网站有用director做的片头深圳seo推广外包
  • 高仿卡西欧手表网站曼联目前积分榜
  • WordPress允许用户删除评论淄博网站优化
  • 企业网站建设物美价廉排行榜网站
  • vps网站打开速度调节爱站网挖掘词
  • 无锡免费网站制作今日nba数据帝
  • 在那些网站可以接兼职做免费营销培训
  • wordpress 导出pdf文件seo快速排名优化方式
  • 怎么做香港团购网站网络营销软文范例500字
  • 山东企业网站建设公司安卓优化神器
  • 珠海网站设计多少钱百度权重是什么意思
  • 网站页面大小优化怎么做免费获客平台
  • 开发项目管理系统成都seo的方法
  • 织梦模板下载商城网站模板(高端大气上档次:带数据)一手项目对接app平台
  • php asp jsp 网站互联网域名注册查询
  • 网站设计开发团队网站策划方案
  • 网站平台建设服务承诺书自媒体视频发布平台
  • 网站互动栏目设置五行seo博客
  • 建网站需要哪些资质如何让关键词排名靠前
  • 旅游外贸网站建设推广河南网站建设哪里好
  • 网站建设代理费用竞价是什么工作
  • 网站推广营销方案免费站推广网站2022
  • 南岸网站建设哪家好uc推广登录入口
  • 眉山政府网站建设郑州官网网站优化公司
  • 一起做网站17杭州女装买域名要多少钱一个
  • 做网站开发需要的英语水平2023第二波疫情已经到来
  • 网站建设网站软件有哪些企业网站设计优化公司
  • php企业网站开发实验总结推广官网
  • 好的素材下载网站seo网站排名优化软件是什么
  • php网站建设毕业论文数据库分析百度优选官网