linxin
linxin
**Is your feature request related to a problem? Please describe.** A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] **Describe the solution you'd...
1. 收敛配置入口,提供统一的配置的编程界面(以类似Netty的Option的方式进行配置) 2. 支持配置隔离,不同的Bolt实例使用不同的配置项 3. 提升配置的可扩展性 配置模块设计:  兼容: * Switch(ProtocolSwitch、GlobalSwitch)不动 * 初始化时将ConfigManager->BoltOptions
### Your question 如标题描述。 另外一个问题,DatumCache的访问最终都代理到DatumStorage,并没有cache这层含义,那DatumCache的作用是什么? ### Your scenes  如上图,在每60秒的统计任务中都会申请出一个大Map。 ### Your advice 统计信息可以维护起来,比如添加、移除Publisher的时候更新count,或者内部Map直接返回size。 ### Environment - SOFARegistry version: 6.1.9 - JVM version (e.g. `java -version`): - OS version (e.g....
### Your question 1. store模块各个接口命名不清晰,无法表达清楚的含义(下面给出) 2. 部分实现没有合理的接口抽象,比如SlotStore ### Your scenes 1、命名问题 * DataStore:实际用于存储Publisher信息,建议使用PublisherStore(当然,Store数据是可以读取的),DataStore容易误解为同样的数据存储,特别是它的实现类叫SessionDataStore,会误解为Session节点的数据存储 * Interests:实际用于存储Subscriber信息,建议使用SubscriberStore * Watchers:实际用于存储Watcher信息,建议使用WatcherStore * Store、DataStore和DataManager:Store是内置的,较为底层的存储接口的设计,DataStore实际是继承DataManager的接口,让人分不清楚这几个接口的职责 2、部分接口或者实现不合理 * SlotStore实际组合了SimpleStore,实现了按槽进行存储,可以增加一个SlotStore接口,提供读取特定槽位的数据等能力,而将当前的SlotStore修改为一个实现类(当前SlotStore通过一些public方法暴露了slot相关的操作) * 多个接口使用了集合类的嵌套,比如Map、Map——这个还结合了泛型,使得代码的可读性变得比较差 * 类似Tuple count()这个接口,除非去读实现,否则无法理解返回的两个Long的含义 * 实现不内聚,可以通过store#get拿到存储数据的Map,在外部去操作这个Map进行数据删除等操作 ###...
### Your question   如上,Watcher对象在添加到Store之前会做一次internWatcher,而internWatcher操作实际是重复做了一次Watcher属性的Set操作。  而在网络请求进来,进行从ConfiguratorRegister对象转换为Watcher对象时已经经过了一次Watcher各个属性的set操作,set时已经执行了intern,所以在add到Store之前不需要再次进行intern。(Subscriber同理) describe your question clearly ### Your scenes describe your use scenes (why need this feature) ### Your advice 1. 简单的解决办法是把Subscriber、Watcher的intern方法移除(Publisher因为有节点间的同步操作,少了Converter这里的操作,暂时还无法移除) 2. 长期更好的设计模式是在网络的解码器(Netty...
### Your question Publisher、UnPublisher、Subscriber、Watcher这四个类的定义都在model..common.model.store中,所以他们都是存储相关的模型吗?但是他们中又带有业务逻辑,比如:  如果他们是业务模型,但它们似乎又都用户数据传输相关的操作。 另外UnPublisher作为一个模型对象本身是不合适的吧? ### Your scenes 存储模型(类DTO对象不应当包好业务逻辑),业务模型应当和存储模型进行分离 ### Your advice 对存储模型、业务模型做好清晰的抽象 ### Environment - SOFARegistry version: 6.1.9 - JVM version (e.g. `java -version`): - OS version...
### Motivation: Explain the context, and why you're making that change. To make others understand what is the problem you're trying to solve. ### Modification: Describe the idea and modifications...