软件定制开发供应商搭建单机 nacos 负载均衡ribbon 轮询策略 权重2种方式

单机搭建

jpscd /opt/lstar -zxf nacos-server-1.4.2.tar.gz mv nacos soft/nacos8848cd soft/nacos8848/conf/vim application.propertiescd ../bin/lspwd#常在/etc/profile软件定制开发供应商文件中修改环境变量vim /etc/profile#软件定制开发供应商添加到末尾=============================#nacos envexport NACOS_HOME=/opt/soft/nacos8848export PATH=$PATH:$NACOS_HOME/bin=============================#:wq!cd ~cd /opt/soft/nacos8848/bin/#软件定制开发供应商关闭集群模式vim startup.sh#=============================##软件定制开发供应商修改下面文件export MODE="standalone"#=============================##:wq!source /etc/profile#启动startup.sh#软件定制开发供应商打开浏览器192.168.64.200:8848/nacos/#/login

网页界面

NACOS.一个易于使用的动态服务发现、配置和服务管理平台,用于构建云原生应用程序

ideal 打包?

负载均衡ribbon

1.什么是Ribbon目前主流的负载方案分为以下两种:集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如Nginx)。客户端根据自己的请求情况做负载均衡,Ribbon 就属于客户端自己做负载均衡。Spring Cloud Ribbon是基于Netflix Ribbon 实现的一套客户端的负载均衡工具,Ribbon客户端组件提供一系列的完善的配置,如超时,重试等。通过Load Balancer获取到服务提供的所有机器实例,Ribbon会自动基于某种规则(轮询,随机)去调用这些服务。Ribbon也可以实现我们自己的负载均衡算法。

公司看项目 注意点

springCloud alibaba 版本

ideal 配置nacos

pom导入包

#properties 写入下面版本<spring-boot.version>2.3.2.RELEASE</spring-boot.version><spring-cloud.version>Hoxton.SR9</spring-cloud.version><spring-cloud-alibaba.version>2.2.6.RELEASE</spring-cloud-alibaba.version>​​#导入dependency依赖<dependency>    <groupId>org.springframework.cloud</groupId>    <artifactId>spring-cloud-dependencies</artifactId>    <version>${spring-cloud.version}</version>    <type>pom</type>    <scope>import</scope></dependency><dependency>    <groupId>com.alibaba.cloud</groupId>    <artifactId>spring-cloud-alibaba-dependencies</artifactId>    <version>${spring-cloud-alibaba.version}</version>    <type>pom</type>    <scope>import</scope></dependency>   

配置yum

server:  port: 12000spring:   application:    name: stockserv  cloud:    nacos:      discovery:        server-addr: 192.168.64.200:8848        username: nacos        password: nacos        namespace: public

导入子项目依赖

        <dependency>            <groupId>com.alibaba.cloud</groupId>            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>        </dependency>

编写订单的配置文件

@Configurationpublic class RemoteConfig {    @Bean    public RestTemplate getAjax(){        return new ResTemplate;    }}

浏览器输入地址

http://localhost:1201/order-server/addorder

负载均衡

http://localhost:1201/order-server/addorder​

策略

轮询区域轮询区域分区从事轮询线性轮询  

方式1

#Application中上面加这个注解@RibbonClients(value={        @RibbonClient(name="stockserv",configuration= RibbonRule.class)})​​#不在applicaiton目录下 新建实体类RibbonRule@Configurationpublic class RibbonRule {    //手动权重    @Bean    public IRule iRule(){        return new NacosRule();    }}​

方式二

yum里面配置stockserv:  ribbon:    NFloadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule

--------------注意2种方法不能一起写*--------------

#类似规则引擎。。。。。。。#自定义负载策略​public class MyNacosRule extends AbstractLoadBalancerRule {​    @Autowired    private NacosDiscoveryProperties nacosDiscoveryProperties;​    @Override    public void initWithNiwsConfig(IClientConfig iClientConfig) {​    }​    @Override    public Server choose(Object o) {        //从注册中心上获取动态服务列表        DynamicServerListLoadBalancer lb= (DynamicServerListLoadBalancer)getLoadBalancer();        //获取服务名        String serverName = lb.getName();        //构建服务名实例        NamingService ns = nacosDiscoveryProperties.namingServiceInstance();        //nacos基于权重的算法        try {            Instance instance = ns.selectOneHealthyInstance(serverName);            //放入服务器            return new NacosServer(instance);        } catch (NacosException e) {          e.printStackTrace();        }        //如果出现问题 则返回用户null        return null;    }}​​

配置yum

stockserv:  ribbon:    NFloadBalancerRuleClassName: com.kgc.mynacos.rrules.custrules.MyNacosRule

权重

controller配置权重

#1 controller配置系统权重​#controller层 注意(configuration= RibbonRule.class 中修改为RibbonRule)#@SpringBootApplication//@RibbonClients(value={//        @RibbonClient(name="stockserv",configuration= RibbonRule.class)//})public class OrderApplication {    public static void main(String[] args) {        SpringApplication.run(OrderApplication.class,args);    }}​#rules层 提供系统自带的权重 rules的位置不要和application一级​@Configurationpublic class RibbonRule {    //手动权重    @Bean    public IRule iRule(){//        return new NacosRule();        //自动权重        return new RandomRule();    }}​​​#2 controller配置自定义权重#controller层注意(configuration= MyNacosRule.class 中修改为MyNacosRule)#@SpringBootApplication//@RibbonClients(value={//        @RibbonClient(name="stockserv",configuration= MyNacosRule.class)//})public class OrderApplication {    public static void main(String[] args) {        SpringApplication.run(OrderApplication.class,args);    }}​#rules层 #提供自定义的权重 rules的位置不要和application一级#-----------------------------public class MyNacosRule extends AbstractLoadBalancerRule {​    @Autowired    private NacosDiscoveryProperties nacosDiscoveryProperties;​​​    @Override    public Server choose(Object o) {        //从注册中心上获取动态服务列表        DynamicServerListLoadBalancer lb= (DynamicServerListLoadBalancer)getLoadBalancer();        //获取服务名        String serverName = lb.getName();        //构建服务名实例        NamingService ns = nacosDiscoveryProperties.namingServiceInstance();        //nacos基于权重的算法        try {            Instance instance = ns.selectOneHealthyInstance(serverName);            //放入服务器            return new NacosServer(instance);        } catch (NacosException e) {          e.printStackTrace();        }        //如果出现问题 则返回用户null        return null;    }​    @Override    public void initWithNiwsConfig(IClientConfig iClientConfig) {​    }}#-----------------------------​

yml配置权重

#1 yum 中配置系统权重  (这个暂时不能用 )注意(RibbonRule类别写错 NFLoadBalancerRuleClassName 这个注意大小写)stockserv:  ribbon:    NFLoadBalancerRuleClassName: com.kgc.mynacos.rrules.custrules.RibbonRule    #rules层 提供系统自带的权重 rules的位置不要和application一级​@Configurationpublic class RibbonRule {    //手动权重    @Bean    public IRule iRule(){//        return new NacosRule();        //自动权重        return new RandomRule();    }}​​#2 yum 中配置自定义权重 注意(MyNacosRule类别写错 NFLoadBalancerRuleClassName 这个注意大小写)stockserv:  ribbon:    NFLoadBalancerRuleClassName: com.kgc.mynacos.rrules.custrules.MyNacosRule​#rules层 #提供自定义的权重 rules的位置不要和application一级#-----------------------------public class MyNacosRule extends AbstractLoadBalancerRule {​    @Autowired    private NacosDiscoveryProperties nacosDiscoveryProperties;​​​    @Override    public Server choose(Object o) {        //从注册中心上获取动态服务列表        DynamicServerListLoadBalancer lb= (DynamicServerListLoadBalancer)getLoadBalancer();        //获取服务名        String serverName = lb.getName();        //构建服务名实例        NamingService ns = nacosDiscoveryProperties.namingServiceInstance();        //nacos基于权重的算法        try {            Instance instance = ns.selectOneHealthyInstance(serverName);            //放入服务器            return new NacosServer(instance);        } catch (NacosException e) {          e.printStackTrace();        }        //如果出现问题 则返回用户null        return null;    }​    @Override    public void initWithNiwsConfig(IClientConfig iClientConfig) {​    }}#-----------------------------​

如果不配置就走轮询策略!!!

永久插入图片

首先将图片通过在线转码工具转换成base64的编码,并用以下格式嵌入即可,格式如下:![image] (base64)但是由于这base64编码往往都很长,很占篇幅,因此我们可以给图片编号,并将所有的图片base64编码放在文档的最后即可,格式如下:​    在插入图片的地方使用:![image] [图片编号]    在文档最后使用:[图片编号]:base64编码
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发