mirror of
https://github.com/tiennm99/zfoo.git
synced 2026-10-11 03:13:51 +00:00
doc[zfoo]: 更新文档
This commit is contained in:
1 parent
b8d20227bf
commit
3be0f0ab43
7 files changed
+42
-51
No files matched your search
+1
-1
@@ -12,7 +12,7 @@
|
||||
|
||||
### Ⅲ. 分布式热更新
|
||||
|
||||
- 将需要热更新的class文件上传到zookeeper注册中心中,其它服务器监听需要更新的class文件, 中有分布式热更新实现
|
||||
- 将需要热更新的class文件上传到zookeeper注册中心中,其它服务器监听需要更新的class文件,监听到了就去热更新代码
|
||||
|
||||
- [tank](https://github.com/zfoo-project/tank-game-server/blob/main/common/src/main/java/com/zfoo/tank/common/util/HotUtils.java)
|
||||
分布式热更新代码实现
|
||||
@@ -40,13 +40,9 @@ public class TcpClientTest {
|
||||
var client = new TcpClient(HostAndPort.valueOf("127.0.0.1:9000"));
|
||||
var session = client.start();
|
||||
|
||||
var request = new TcpHelloRequest();
|
||||
request.setMessage("Hello, this is the tcp client!");
|
||||
|
||||
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
ThreadUtils.sleep(2000);
|
||||
NetContext.getRouter().send(session, request);
|
||||
NetContext.getRouter().send(session, TcpHelloRequest.valueOf("Hello, this is the tcp client!"));
|
||||
}
|
||||
|
||||
ThreadUtils.sleep(Long.MAX_VALUE);
|
||||
|
||||
@@ -24,6 +24,11 @@ public class TcpHelloRequest implements IPacket {
|
||||
|
||||
private String message;
|
||||
|
||||
public static TcpHelloRequest valueOf(String message) {
|
||||
var request = new TcpHelloRequest();
|
||||
request.message = message;
|
||||
return request;
|
||||
}
|
||||
|
||||
@Override
|
||||
public short protocolId() {
|
||||
|
||||
@@ -19,14 +19,6 @@
|
||||
<context:component-scan base-package="com.zfoo"/>
|
||||
|
||||
<net:config id="applicationNameTest" protocol-location="protocol.xml">
|
||||
|
||||
<net:host center="direct connect" user="jaysunxiao" password="123456">
|
||||
<net:address name="server0" url="127.0.0.1:9000"/>
|
||||
<net:address name="server1" url="127.0.0.1:9001"/>
|
||||
<net:address name="client0" url="127.0.0.1:9000"/>
|
||||
<net:address name="client1" url="127.0.0.1:9001"/>
|
||||
</net:host>
|
||||
|
||||
</net:config>
|
||||
|
||||
</beans>
|
||||
@@ -24,13 +24,6 @@
|
||||
<net:address name="firstZookeeper" url="127.0.0.1:2181"/>
|
||||
</net:registry>
|
||||
|
||||
<net:host center="direct connect" user="jaysunxiao" password="123456">
|
||||
<net:address name="server0" url="127.0.0.1:9000"/>
|
||||
<net:address name="server1" url="127.0.0.1:9001"/>
|
||||
<net:address name="client0" url="127.0.0.1:9000"/>
|
||||
<net:address name="client1" url="127.0.0.1:9001"/>
|
||||
</net:host>
|
||||
|
||||
<net:consumer load-balancer="consistent-hash">
|
||||
<net:module name="providerTest"/>
|
||||
</net:consumer>
|
||||
|
||||
@@ -29,8 +29,40 @@ import java.util.Collections;
|
||||
@Ignore
|
||||
public class AccessorTest {
|
||||
|
||||
|
||||
@Test
|
||||
public void testBatchInsert() {
|
||||
public void insert() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var userEntity = new UserEntity(1, (byte) 2, (short) 3, 5, true, "orm", "orm");
|
||||
OrmContext.getAccessor().insert(userEntity);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void delete() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
OrmContext.getAccessor().delete(1L, UserEntity.class);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void update() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var userEntity = new UserEntity(1, (byte) 2, (short) 3, 5, true, "update", "update");
|
||||
OrmContext.getAccessor().update(userEntity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void load() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var ent = (UserEntity) OrmContext.getAccessor().load(1L, UserEntity.class);
|
||||
System.out.println(ent);
|
||||
}
|
||||
|
||||
|
||||
// 批量插入
|
||||
@Test
|
||||
public void batchInsert() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var listUser = new ArrayList<UserEntity>();
|
||||
for (var i = 1; i <= 10; i++) {
|
||||
@@ -40,39 +72,13 @@ public class AccessorTest {
|
||||
OrmContext.getAccessor().batchInsert(listUser);
|
||||
}
|
||||
|
||||
// 批量更新
|
||||
@Test
|
||||
public void testInsert() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var userEntity = new UserEntity(1, (byte) 2, (short) 3, 5, true, "helloORM", "helloOrm");
|
||||
OrmContext.getAccessor().insert(userEntity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdate() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var userEntity = new UserEntity(1, (byte) 2, (short) 3, 5, true, "helloUpdate", "helloOrm");
|
||||
OrmContext.getAccessor().update(userEntity);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBatchUpdate() {
|
||||
public void batchUpdate() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var userEntity = new UserEntity(1, (byte) 2, (short) 3, 5, true, "helloBatchUpdate", "helloOrm");
|
||||
userEntity.setC(222);
|
||||
OrmContext.getAccessor().batchUpdate(Collections.singletonList(userEntity));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoad() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
var ent = (UserEntity) OrmContext.getAccessor().load(1L, UserEntity.class);
|
||||
System.out.println(ent);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDelete() {
|
||||
var context = new ClassPathXmlApplicationContext("application.xml");
|
||||
OrmContext.getAccessor().delete(1L, UserEntity.class);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -104,5 +104,4 @@ cpu: i9900k
|
||||
### Ⅵ. 用途
|
||||
|
||||
- 通信协议
|
||||
- 存储大对象
|
||||
- 对象复制,深克隆
|
||||
Reference in new issue
Block a user