.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一)
原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一)
写下此文章只为了记录Surging微服务学习过程,并且分享给广大想学习surging的基友,方便广大基友快速入门,让程序跑起来。
本篇文章只记录让Surging跑起来,暂时不涉及部署方面,本文参考了其他几位大佬的文章,精简整理的
一.准备工作:
1.先把surging搞下来https://github.com/dotnetcore/surging
2.Win10 Hyper-v开启来,我们本篇中使用轻量linux-- rancherOS,虚机环境搭建请移步文章
3. RancherOS环境暂时只使用 rabbitmq跟consul
二.运行环境搭建,在RancherOS安装Rabbitmq跟consul(此段配置是照搬https://www.cnblogs.com/hankexia/p/9637195.html)
1.安装consul
$ docker pull consul --下载consul 镜像
这位老铁的consul 服务发现介绍的还行 consul 服务发现 集群 docker 版
我提炼了一下 执行一下命令就行了,做两个consul服务小集群,嘻嘻
由于docker默认创建容器每次重启会重新分配容器内部IP,会导致集群的join的IP 链接不上从而重启失败!
我们设置docker的consul 容器为固定IP
docker network create --subnet=172.25.0.0/16 consulnet --创建自定义网络类型,并且指定网段
consul 服务端 node1 --请按照顺序执行一下命令
$ docker run -d --name node1 --net consulnet --ip 172.25.0.2 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -node=node1 -bootstrap-expect=2 --(这个2 代表集群至少两个consul服务器才能正常启动,我们暂且就弄两个吧,此服务一定要是固定IP 不然下面的join会重启后因为IP不对儿失败)
获取 node1 的IP
$ JOIN_IP="172.25.0.2" --node1 的ip
consul 服务端 node2
$ docker run -d --name node2 --net consulnet --ip 172.25.0.3 -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -server -node=node2 -join $JOIN_IP
consul 客户端node11 带UI
$ docker run -d --name node11 --net consulnet --ip 172.25.0.4 -p 8400:8400 -p 8500:8500 -p 8600:53/udp -e 'CONSUL_LOCAL_CONFIG={"skip_leave_on_interrupt": true}' consul agent -ui -node=node11 -client=0.0.0.0 -join $JOIN_IP
浏览器打开 RancherOS IP:8500 ,即可看到consul 的UI
2.安装rabbitmq
$ docker pull rabbitmq:3-management
--拉取rabbitmq的镜像,后面不带management,启动rabbitmq后是无法打开管理界面的,所以我们要下载带management插件的rabbitmq. $ docker run -d --name rabbitmq --publish 5671:5671 --publish 5672:5672 --publish 4369:4369 --publish 25672:25672 --publish 15671:15671 --publish 15672:15672 rabbitmq:3-management --这个是使用的默认账号密码 guest guest
浏览器打开RancherOS ip:15672 即可进入rabbitmq 的UI
三.Surging项目配置
1.修改Surging.ApiGateway网关项目下的gatewaySetting.json
2.修改Surging.ApiGateway网关项目下的Program
3.修改Surging.Services.Server\Configs\consul.json
4.修改Surging.Services.Server下的eventBusSettings.json
5.修改Surging.Services.Server下的surgingSettings.json (Rootpath: surging会扫描该路径,加载该路径下的模块)
四.Surging运行起来
1.设置多项目启动,直接F5即可运行
2,http://localhost:8001/即可查看网关UI
3.用postman请求下user模块,Content-Type加application/json,即可看到请求结果
4.由于surging源码带的demo(Surging.Services.Server)是直接引用了,common模块,因此可直接请求。现在我们来试试rootpath加载manage模块。
我们用命令发布到 我们设置的rootpath(配置路径就是 三--5 图里的 d:\surgingApp),假设我的解决方案目录是d:\surging\src\
dotnet publish d:\surging\src\Surging.Modules\Surging.Modules.Manager\Surging.Modules.Manager.csproj -o d:\surgingApp\Modules\Manager -c release
此时我们打开POSMAN请求一下manage的服务
OK,跑起来了,咱们可以深入研究了!
Surging官方技术群:615562965
.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---先让程序跑起来(一)的更多相关文章
- .NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二)
原文:.NetCore微服务Surging新手傻瓜式 入门教程 学习日志---结构简介(二) 先上项目解决方案图: 以上可以看出项目结构可以划分为4大块,1是surging的核心底层,2,3,4都可以 ...
- (1)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型
开发工具:VS2017 .Net Core 2.1 什么是微服务?单体结构: 缺点: 1)只能采用同一种技术,很难用不同的语言或者语言不同版本开发不同模块: 2)系统耦合性强,一旦其中一个模块有问题, ...
- (1).NET CORE微服务 Micro-Service ---- 什么是微服务架构,.netCore微服务选型
开发工具:VS2017 .Net Core 2.1 什么是微服务?单体结构: 缺点:1)只能采用同一种技术,很难用不同的语言或者语言不同版本开发不同模块:2)系统耦合性强,一旦其中一个模块有问题,整个 ...
- 什么是微服务架构,.netCore微服务选型
什么是微服务架构,.netCore微服务选型 https://www.cnblogs.com/uglyman/p/9182485.html 开发工具:VS2017 .Net Core 2.1 什么是微 ...
- .NETCore微服务探寻(一) - 网关
前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...
- .NETCore微服务探寻(三) - 分布式日志
前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...
- .NETCore微服务探寻(二) - 认证与授权
前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...
- .NETCore微服务探寻(三) - 远程过程调用(RPC)
前言 一直以来对于.NETCore微服务相关的技术栈都处于一个浅尝辄止的了解阶段,在现实工作中也对于微服务也一直没有使用的业务环境,所以一直也没有整合过一个完整的基于.NETCore技术栈的微服务项目 ...
- 最新最最最简单的Snagit傻瓜式破解教程(带下载地址)
最新最最最简单的Snagit傻瓜式破解教程(带下载地址) 下载地址 直接滑至文章底部下载 软件介绍 一个非常著名的优秀屏幕.文本和视频捕获.编辑与转换软件.可以捕获Windows屏幕.DOS屏幕:RM ...
随机推荐
- c++中六种构造函数的实现以及9中情况下,构造函数的调用过程
六种构造函数的实现代码例如以下: #include<iostream> using namespace std; //c++中六种默认的构造函数 class Test { public: ...
- 转:IOS的推送。是一个强大的功能
IOS下我们很多人天天开着 邮件推送 微信推送 QQ推送 微博推送 新浪微博推送,安卓敢吗? 五个后台进程消耗电.流量谁敢这么做?现在安卓也出了推送,但绝对是伪推送.实际是挂了个进程,关掉了就收不到. ...
- SSL通关之代码演示样例(四)
实际开发过程中,server端是不须要多加代码处理的,由于ssl验证过程是由server(tomcat.nginx等)完毕的. 这段代码也是參考了网上的: 新建一个web项目,项目结构和须要引入的ja ...
- SQLite详解,案例,手册
SQLite 存储类型 1.NULL 2.INTEGER 3.REAL 4.TEXT 5.BLOB 创建表 CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT N ...
- Java 关于运算结果
今天发现一个自己的一个知识误区 原来有些自己以为会发生异常的运算,并没有异常发生,只要运算符两端存在至少一个浮点数 比如: public class Demo { /** * @param args ...
- NPOI批量导入大量数据
简介:NPOI批量导入大量数据 使用SqlBulkCopy 可以将datatable里面的大量数据批量复制到数据库中,而不用担心性能问题,比系统中的传统做法(每20行数据执行一遍mydb.execut ...
- netstat -p 显示 -
http://4735839.blog.51cto.com/4725839/1418945 https://yq.aliyun.com/articles/63060
- 如何通过使用fiddler对Android系统设备抓包总结
http://www.open-open.com/lib/view/open1427509907668.html
- 重建一些被PHP7废弃的函数,
<?php if(!function_exists('ereg')) { function ereg($pattern, $subject, &$matches = []) { retu ...
- ubuntu-通配符
ubuntu下的通配符主要有三个 1.* 这个是匹配任意一个或多个字符 ab1.txt ab2.txt ab3.txt abc.txt 执行命令以及结果如下 zhangshuli@zhangshul ...