Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
b708482
update smart-servlet to 0.1.3-SNAPSHOT
smthing Jan 7, 2021
538056d
update aio-enhance to 1.0.3-SNAPSHOT
smthing Jan 7, 2021
c62ca37
Merge pull request #1 from TechEmpower/master
smthing Jan 24, 2021
dc42109
smart-servlet bugfix
smthing Jan 24, 2021
6e51629
Merge pull request #2 from TechEmpower/master
smthing Feb 1, 2021
b946e25
bugfix
smthing Feb 1, 2021
c3ccb72
Merge pull request #3 from TechEmpower/master
smthing Feb 14, 2021
bdec05d
update smart-socket to 1.5.6-SNAPSHOT
smthing Feb 14, 2021
2e8869b
remove file
smthing Feb 20, 2021
4b4541c
update aio-enhance to 1.0.4-SNAPSHOT
smthing Feb 22, 2021
9bd5a50
优化代码
smthing Feb 22, 2021
e9e7741
优化代码
smthing Feb 23, 2021
34ce1b2
update smart-socket to 1.5.6
smthing Mar 3, 2021
b708443
config threadNum
smthing Mar 3, 2021
e26fb61
Merge pull request #4 from TechEmpower/master
smthing Mar 5, 2021
1d9c0aa
Merge pull request #5 from TechEmpower/master
smthing Mar 13, 2021
94f7760
Merge pull request #6 from TechEmpower/master
smthing Mar 17, 2021
5f5beea
update smart-socket to 1.5.7-SNAPSHOT
smthing Mar 17, 2021
06a68c9
Merge remote-tracking branch 'origin/master'
smthing Mar 17, 2021
1b17759
Merge pull request #7 from TechEmpower/master
smthing Mar 27, 2021
13c8fd0
Merge pull request #8 from TechEmpower/master
smthing Apr 5, 2021
14a7939
Merge pull request #9 from TechEmpower/master
smthing May 26, 2021
30734b3
优化代码
smthing May 26, 2021
9b04275
Merge pull request #10 from TechEmpower/master
smthing Jun 4, 2021
e4e2a72
update smart-socket to 1.5.10-SNAPSHOT
smthing Jun 4, 2021
6ef1f6c
优化代码
smthing Jun 4, 2021
14fa6e2
Merge pull request #11 from TechEmpower/master
smthing Jun 10, 2021
b92bd1a
优化代码
smthing Jun 10, 2021
48a3430
优化代码
smthing Jun 10, 2021
9a3ba5a
Merge pull request #12 from TechEmpower/master
smthing Jun 28, 2021
6aae492
异常aio-enhance
smthing Jun 28, 2021
8a96114
Merge pull request #13 from TechEmpower/master
smthing Jul 25, 2021
83d238f
优化代码
smthing Jul 25, 2021
517dd69
优化代码
smthing Jul 25, 2021
0183134
Merge pull request #14 from TechEmpower/master
smthing Aug 14, 2021
8da3c2a
Merge remote-tracking branch 'origin/master'
smthing Aug 14, 2021
65f27d1
优化代码
smthing Aug 14, 2021
4d57b5d
Merge pull request #15 from TechEmpower/master
smthing Aug 25, 2021
a89d3d4
remove aio-pro
smthing Aug 25, 2021
7efa480
Merge pull request #16 from TechEmpower/master
smthing Sep 9, 2021
4afb6b4
Merge pull request #17 from TechEmpower/master
smthing Sep 30, 2021
cbddd2c
remove headerLimiter
smthing Sep 30, 2021
e620f72
Merge pull request #18 from TechEmpower/master
smthing Nov 26, 2021
57ca747
Merge pull request #19 from TechEmpower/master
smthing Dec 9, 2021
73bd7b3
update hikaricp version
smthing Dec 9, 2021
13fb097
Merge pull request #20 from TechEmpower/master
smthing Jan 2, 2022
3f2e680
Merge pull request #22 from TechEmpower/master
smthing Jan 22, 2022
5a96394
replace json util
smthing Jan 22, 2022
5c25976
Merge pull request #23 from TechEmpower/master
smthing Feb 28, 2022
77905da
Merge pull request #24 from TechEmpower/master
smthing Aug 28, 2022
66beba8
Merge pull request #25 from TechEmpower/master
smthing Nov 21, 2022
c882c08
更新线程模型
smthing Nov 21, 2022
2f49faa
upgrade smart-servlet to 0.1.9-SNAPSHOT
smthing Nov 22, 2022
c4f2481
Merge pull request #26 from TechEmpower/master
smthing Jan 27, 2023
0000347
config thread num
smthing Jan 27, 2023
b26a944
config thread num
smthing Jan 27, 2023
7dc16b2
Merge pull request #27 from TechEmpower/master
smthing Feb 9, 2023
5418509
revert code
smthing Feb 9, 2023
500ae8d
revert code
smthing Feb 9, 2023
8433e23
Merge pull request #28 from TechEmpower/master
smthing May 2, 2023
30e3109
Merge pull request #29 from TechEmpower/master
smthing May 3, 2023
3ff91b6
upgrade smart-servlet to 0.2.1-SNAPSHOT
smthing May 3, 2023
0b41bd0
Merge pull request #30 from TechEmpower/master
smthing Nov 14, 2023
4b9a3fe
Merge pull request #31 from TechEmpower/master
smthing Nov 17, 2023
916684b
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
f6daf6f
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
f82b12e
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
abcb2bd
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
817bc2e
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
69c80e4
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
ed03c88
upgrade smart-servlet to 0.6-SNAPSHOT
smthing Nov 17, 2023
a5f2065
Merge pull request #32 from TechEmpower/master
smthing Nov 28, 2023
c2a006d
Merge pull request #33 from TechEmpower/master
smthing Apr 3, 2024
adcfa63
upgrade smart-servlet to 1.0-SNAPSHOT
smthing Apr 3, 2024
6116cb9
Merge pull request #34 from TechEmpower/master
smthing Jun 1, 2024
176adc5
upgrade smart-servlet to 1.4
smthing Jun 1, 2024
36ad58b
upgrade smart-servlet to 1.5-SNAPSHOT
smthing Jun 1, 2024
41012e2
启用虚拟线程
smthing Jun 2, 2024
289be6b
启用虚拟线程
smthing Jun 2, 2024
f08a35b
Merge pull request #35 from TechEmpower/master
smthing Jun 30, 2024
e515c62
Merge pull request #36 from TechEmpower/master
smthing Nov 11, 2024
7584429
适配最新版
smthing Nov 11, 2024
6a839e8
Merge pull request #37 from TechEmpower/master
smthing Nov 22, 2024
40ce60d
Merge pull request #38 from TechEmpower/master
smthing Dec 7, 2024
1347601
适配最新版
smthing Dec 7, 2024
6794849
适配最新版
smthing Dec 7, 2024
dde7fce
适配最新版
smthing Dec 7, 2024
500f4f3
适配最新版
smthing Dec 7, 2024
0506444
适配最新版
smthing Dec 7, 2024
968ea5c
Merge pull request #39 from TechEmpower/master
smthing Dec 25, 2024
2efa84e
适配最新版
smthing Dec 25, 2024
cc05c87
适配最新版
smthing Dec 29, 2024
32f6029
Merge pull request #40 from TechEmpower/master
smthing Jan 16, 2025
74b3ad9
适配最新版
smthing Jan 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions frameworks/Java/smart-socket/config.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
[framework]
name = "smart-socket"
name = "feat"

[main]
urls.plaintext = "/plaintext"
urls.json = "/json"
urls.db = "/db"
urls.query = "/queries?queries="
urls.update = "/updates?queries="
#urls.db = "/db"
#urls.query = "/queries?queries="
#urls.update = "/updates?queries="
approach = "Realistic"
classification = "Platform"
database = "Postgres"
Expand All @@ -15,7 +15,7 @@ os = "Linux"
orm = "Raw"
platform = "smartboot"
webserver = "None"
versus = "smart-socket"
versus = "feat"

[smart-servlet]
urls.plaintext = "/plaintext"
Expand Down
2 changes: 1 addition & 1 deletion frameworks/Java/smart-socket/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<log4j.version>2.17.1</log4j.version>
<smartservlet.version>2.7</smartservlet.version>
<smartservlet.version>2.8</smartservlet.version>
<hikaricp.version>5.0.0</hikaricp.version>
<jsoniter.version>0.9.23</jsoniter.version>
</properties>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,62 +8,55 @@

package org.smartboot.http;

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import org.smartboot.Message;
import tech.smartboot.feat.core.Feat;
import tech.smartboot.feat.core.common.enums.HeaderValueEnum;
import tech.smartboot.feat.core.server.HttpHandler;
import tech.smartboot.feat.core.server.HttpRequest;
import tech.smartboot.feat.core.server.HttpResponse;
import tech.smartboot.feat.core.server.HttpServer;
import tech.smartboot.feat.core.server.HttpServerHandler;
import tech.smartboot.feat.core.server.handler.HttpRouteHandler;

import javax.sql.DataSource;

public class Bootstrap {
static byte[] body = "Hello, World!".getBytes();

public static void main(String[] args) {
int cpuNum = Runtime.getRuntime().availableProcessors();
// 定义服务器接受的消息类型以及各类消息对应的处理器
HttpServer bootstrap = new HttpServer();
bootstrap.configuration()
.threadNum(cpuNum + 1)
.headerLimiter(0)
.readBufferSize(1024 * 4)
.writeBufferSize(1024 * 4);
bootstrap.httpHandler(new HttpServerHandler() {
@Override
public void handle(HttpRequest request, HttpResponse response) throws Throwable {
if ("/plaintext".equals(request.getRequestURI())) {
response.setContentLength(body.length);
response.setContentType("text/plain; charset=UTF-8");
response.write(body);
} else if ("/json".equals(request.getRequestURI())) {
response.setContentType("application/json");
JsonUtil.writeJsonBytes(response, new Message("Hello, World!"));
}
Feat.createHttpServer(options -> {
options.threadNum(cpuNum + 1)
.headerLimiter(0)
.readBufferSize(1024 * 4)
.writeBufferSize(1024 * 4);
}).httpHandler(request -> {
HttpResponse response = request.getResponse();
if ("/plaintext".equals(request.getRequestURI())) {
response.setContentLength(body.length);
response.setContentType(HeaderValueEnum.ContentType.TEXT_PLAIN_UTF8);
response.write(body);
} else if ("/json".equals(request.getRequestURI())) {
response.setContentType("application/json");
JsonUtil.writeJsonBytes(response, new Message("Hello, World!"));
}
}).setPort(8080).start();
}).listen(8080);
}

private static void initDB(HttpRouteHandler routeHandle) {
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:postgresql://tfb-database:5432/hello_world");
config.setUsername("benchmarkdbuser");
config.setPassword("benchmarkdbpass");
config.setMaximumPoolSize(64);
config.addDataSourceProperty("cachePrepStmts", "true");
config.addDataSourceProperty("prepStmtCacheSize", "250");
config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
DataSource dataSource = new HikariDataSource(config);
routeHandle.route("/db", new SingleQueryHandler(dataSource))
.route("/queries", new MultipleQueriesHandler(dataSource))
.route("/updates", new UpdateHandler(dataSource));
// .route("/fortunes", new FortunesHandler(dataSource));
}
// private static void initDB(HttpRouteHandler routeHandle) {
// try {
// Class.forName("org.postgresql.Driver");
// } catch (ClassNotFoundException e) {
// e.printStackTrace();
// }
// HikariConfig config = new HikariConfig();
// config.setJdbcUrl("jdbc:postgresql://tfb-database:5432/hello_world");
// config.setUsername("benchmarkdbuser");
// config.setPassword("benchmarkdbpass");
// config.setMaximumPoolSize(64);
// config.addDataSourceProperty("cachePrepStmts", "true");
// config.addDataSourceProperty("prepStmtCacheSize", "250");
// config.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
// DataSource dataSource = new HikariDataSource(config);
// routeHandle.route("/db", new SingleQueryHandler(dataSource))
// .route("/queries", new MultipleQueriesHandler(dataSource))
// .route("/updates", new UpdateHandler(dataSource));
//// .route("/fortunes", new FortunesHandler(dataSource));
// }
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import tech.smartboot.feat.core.common.utils.NumberUtils;
import tech.smartboot.feat.core.server.HttpRequest;
import tech.smartboot.feat.core.server.HttpResponse;
import tech.smartboot.feat.core.server.HttpServerHandler;
import tech.smartboot.feat.core.server.handler.BaseHttpHandler;

import javax.sql.DataSource;
import java.io.IOException;
Expand All @@ -19,15 +19,16 @@
* @author 三刀
* @version V1.0 , 2020/6/16
*/
public class MultipleQueriesHandler extends HttpServerHandler {
public class MultipleQueriesHandler extends BaseHttpHandler {
private DataSource dataSource;

public MultipleQueriesHandler(DataSource dataSource) {
this.dataSource = dataSource;
}

@Override
public void handle(HttpRequest httpRequest, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
public void handle(HttpRequest httpRequest, CompletableFuture<Object> completableFuture) throws IOException {
HttpResponse response = httpRequest.getResponse();
Thread.startVirtualThread(() -> {
try {
int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

import tech.smartboot.feat.core.server.HttpRequest;
import tech.smartboot.feat.core.server.HttpResponse;
import tech.smartboot.feat.core.server.HttpServerHandler;
import tech.smartboot.feat.core.server.handler.BaseHttpHandler;

import javax.sql.DataSource;
import java.io.IOException;
Expand All @@ -18,15 +18,16 @@
* @author 三刀
* @version V1.0 , 2020/6/16
*/
public class SingleQueryHandler extends HttpServerHandler {
public class SingleQueryHandler extends BaseHttpHandler {
private DataSource dataSource;

public SingleQueryHandler(DataSource dataSource) {
this.dataSource = dataSource;
}

@Override
public void handle(HttpRequest httpRequest, HttpResponse response, CompletableFuture<Object> completableFuture) throws IOException {
public void handle(HttpRequest httpRequest, CompletableFuture<Object> completableFuture) throws IOException {
HttpResponse response = httpRequest.getResponse();
Thread.startVirtualThread(() -> {
try {
World world = new World();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@


import tech.smartboot.feat.core.common.utils.NumberUtils;
import tech.smartboot.feat.core.server.HttpHandler;
import tech.smartboot.feat.core.server.HttpRequest;
import tech.smartboot.feat.core.server.HttpResponse;
import tech.smartboot.feat.core.server.HttpServerHandler;

import javax.sql.DataSource;
import java.io.IOException;
Expand All @@ -19,16 +19,17 @@
* @author 三刀
* @version V1.0 , 2020/6/16
*/
public class UpdateHandler extends HttpServerHandler {
public class UpdateHandler implements HttpHandler {
private DataSource dataSource;

public UpdateHandler(DataSource dataSource) {
this.dataSource = dataSource;
}

@Override
public void handle(HttpRequest httpRequest, HttpResponse response) throws IOException {
int queries = Math.min(Math.max(NumberUtils.toInt(httpRequest.getParameter("queries"), 1), 1), 500);
public void handle(HttpRequest request) throws IOException {
HttpResponse response = request.getResponse();
int queries = Math.min(Math.max(NumberUtils.toInt(request.getParameter("queries"), 1), 1), 500);
World[] worlds = new World[queries];
StringJoiner updateSql = new StringJoiner(
", ",
Expand Down
Loading