4.ServerList

一、简介

ServerList就是server的列表,我们知道,IRule做负载均衡的关键参数就是server列表,就是从这里获取的。

二、接口

其接口比较简单,定义了两个方法,如下:

public interface ServerList<T extends Server> {
    public List<T> getInitialListOfServers();
    public List<T> getUpdatedListOfServers();   
}
  1. getInitialListOfServers获取初始化列表
  2. getUpdatedListOfServers获取更新的列表

其实现如下:
在这里插入图片描述

三、实现

  1. 大概的实现类流程如下:
    在这里插入图片描述
  2. ConfigurationBasedServerList
    对于这个类,看名字就能猜出大概,基于配置的server类别。
    它主要作用就是从配置文件获取listOfServers参数,组装成server列表,配置项类似如下:
xxxx: #xxxx代表服务名
  ribbon: 
    listOfServers: aa.com,bb.com
  1. DiscoveryEnabledNIWSServerList
    这个类实现了从EurekaClient获取server的信息,一般使用Eureka做注册发现,默认使用此类DiscoveryEnabledNIWSServerList。
    从Eureka获取server地址这个不多说,属于EurekaClient的范畴,获取到的信息组装为DiscoveryEnabledServer,此类继承自Server,多了一些Eureka的信息,比如instanceId,状态信息,UP表示可用。
  2. DomainExtractingServerList仅仅是对DiscoveryEnabledNIWSServerList进行包装,内部其实就是委托DiscoveryEnabledNIWSServerList实现。
Mac OS 系统中要让MySQL在每次开机时自动启动,可以按照以下步骤操作: 1. 首先,确认您已经在终端中安装了MySQL服务器并能正常运行。如果还没有安装,可以在App Store中下载MySQL Community Server。 2. 打开Finder,找到“前往” -> “应用程序” -> “实用工具”,然后找到`Terminal`(终端)应用程序。 3. 使用终端打开`launchd`配置文件编辑器,输入以下命令并按Enter: ``` sudo launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist ``` 如果MySQL是通过Homebrew安装的,上述命令会加载默认的`homebrew.mxcl.mysql.plist`。如果没有,你需要手动创建一个`.plist`文件,内容类似于: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.mysql.server.plist</string> <key>ProgramArguments</key> <array> <string>/usr/local/mysql/support_scripts/mysqld_safe</string> <string>--user=your_mysql_user</string> <string>--password=your_mysql_password</string> <string>&</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <true/> <key>WorkingDirectory</key> <string>/usr/local/mysql/data/</string> </dict> </plist> ``` 将`your_mysql_user`和`your_mysql_password`替换为你的MySQL用户名和密码。 4. 创建或编辑完`.plist`文件后,将其保存到~/Library/LaunchAgents目录下,例如: ``` nano ~/Library/LaunchAgents/com.mysql.server.plist ``` 5. 接着,使用`sudo`权限加载新的设置: ``` sudo launchctl load ~/Library/LaunchAgents/com.mysql.server.plist ``` 6. 最后,你可以检查服务是否已经添加到启动项: ``` launchctl list | grep mysql ``` 完成以上步骤后,MySQL应该会在每次系统启动时自动启动了。如果你遇到问题,记得检查`mysqld_safe`服务是否运行正常以及是否有足够的权限访问数据库文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值