• Surging学习笔记(一)


    一、Surging框架简介
    surging 是一个分布式微服务引擎,提供高性能RPC远程服务调用,服务引擎支持http、TCP、WS、Mqtt协议,采用Zookeeper、Consul作为surging服务的注册中心,集成了哈希一致性,随机,轮询、压力最小优先作为负载均衡的算法,底层协议集成采用的组件是dotnetty、websocket-sharpKestrel。支持通过docker hub 部署服务引擎,也可以通过nuget 引用组件的方式自定义服务引擎。

    二、Surging本地部署测试

    1、首先使用vs2017拉取surging最新代码

    红框标记的有微服务框架代码、作者提供的服务DEMO代码、还有网关代码。代码详情可以去作者博客了解,这里就不一一阐述了。

    2、安装启动Redis、RabbitMQ、Consul等相关依赖

    相关需要安装的都已经成功安装,然后配置Surging.ApiGateway、Surging.Services.Server这两个项目中redis rabbitmq consul的相关配置,因为是本地部署所以配置一般是不需要动的。
     
    3.部署前,我们要配置启动项,我们这里右击解决方案-》属性然后按我图中的顺序设置启动项
     

    直接点击启动就可以了。
    这样我们的网关和服务就已经正常启动了。下面我们测试一下接口是否可以用。
    服务端中注册了一个SayHello的接口,我们来看看它是否可以正常访问。
    使用PostMan调用我本地网关端口中的SayHello接口(这里需要注意,我们调用的时候不在是使用服务的ip和端口了,要使用网关的Ip和端口才能正常访问)
    OK!访问成功了。
     

    三、使用Docker部署Surging及相关的测试(docker中部署和本地类似)

    1.为了检验Surging服务发现和自动注册功能,我做了一个多服务的Demo。 

    2.安装启动Redis、RabbitMQ、Consul等相关依赖。

    docker 安装部署这些你可以通过docker pull 相应的版本这样的命令去完成。这里我就演示一个简单点的,鼠标右击小鲨鱼。
    点击红框位置,然后下载安装这个。然后就可以通过Kitematic,在搜索栏中下载好RabbitMQ、redis、consul相关镜像
     
    3.网关和服务中配置redis rabbitmq consul  
    这里我们要找到redis rabbitmq consul docker镜像的ip具体如何查看其ip,看如下操作:进入到命令窗口,输入docker container ls或者  docker ps -a  查看docker,可以看到现在运行的docker的相关信息。

    然后查看consul的相关配置,输入docker inspect  镜像的 containerID,如consul的id是53c171257c61,输入命令如下:docker inspect 53c171257c61 

    找到其中的ip是多少,然后修改surging网关中的consul地址为:"Address": "172.17.0.2:8500",其他配置根据上面的操作进行修改,如redis 镜像地址的查找和修改等。

    4.添加Docker支持
    修改好surging的网关配置后在网关项目上单击右键,点击docker支持 。如图:
     
    自动生成docker-compose.yml后,修改docker-compose.yml配置
    网关docker-compose.yml配置 
    服务A、B、C docker-compose.yml配置 
    5.使用Docker生成相应的镜像和容器,然后运行容器
    运行命令 docker-compose -f docker-compose.yml up -d 生成镜像 
    启动网关和服务 
    查看网关是否发现并注册我写的那三个服务 
    使用PostMan访问docker中的三个服务 
      服务A调用成功!

     服务B调用成功!

     服务C调用成功! 

    四、总结

    通过学习Surging让我掌握了很多平时不太基础的知识,比如:Consul服务发现、服务与服务之间之间的通讯、Docker相关的知识等。后面我还会继续深入的研究Surging框架,继续加油!
  • 相关阅读:
    【20220606】一亩三分地
    【20220601】连岳摘抄
    【20220526】吃里扒外
    【一句日历】2022年6月
    【20220608】连岳摘抄
    【20220604】为了家人
    【20220530】人格就是路的指引
    工作感受月记202206月
    android开发Bad notification posted from package com.suyf.test: Couldn't create icon: StatusBarIcon(icon=Icon(typ=RESOURCE pkg=com.suyf.test id=0x7f0820dd) visible user=0 )解决方法
    Solution 「AGC 020F」Arcs on a Circle
  • 原文地址:https://www.cnblogs.com/YorkSun/p/10438717.html
Copyright © 2020-2023  润新知