运营平台后端
tips :server.servlet.context-path用于指定Web应用程序的上下文路径,例如,如果你设置server.servlet.context-path=/myapp,那么当用户访问http://localhost:8080/myapp时,Boot应用程序会处理这个请求。
tips : 写dev/local/prod这类配置的时候,可以把你的nacos相关配置写到最上面,后面直接变量名引用就行,例如:
1 2 3 4 5 6 7 8
| large: model: nacos: server-addr: 192.168.1.46:8848 namespace: large-model-dev group: LARGE_MODEL_GROUP
|
tips : META-INF/spring.factories
文件用于自动配置和扩展Spring应用程序。这个文件通过Spring的工厂加载机制,可以自动发现和加载配置类、监听器等组件,从而实现模块化和自动化配置。当你在Config包下面写了一些配置时,可以通过以下方式配置
1 2 3
| org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.pubinfo.large.model.framework.dict.config.TravelDictRpcAutoConfiguration,\ com.pubinfo.large.model.framework.dict.config.TravelDictAutoConfiguration
|
@Async的基本使用
@Async注解可以让被标注的方法异步执行,但是有前提条件
- 配置类上添加@EnableAsync注解开启对异步方法的支持。
- 异步执行的方法所在类由Spring管理,即类上要注解@Component或者其他能将类添加到Spring IOC容器的注解。
由于Async注解使用的默认线程池不会复用线程,因此最好使用自定义的线程池。
- 使用AsyncConfigurer指定线程池,用于全局配置线程池的核心接口。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| @Configuration @EnableAsync public class GlobalAsyncConfig implements AsyncConfigurer { @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(5); executor.setMaxPoolSize(10); executor.setQueueCapacity(20); executor.setThreadNamePrefix("global-"); executor.initialize(); return executor; } }
|
- 在Spring容器中注册一个线程池bean,这种方式能按需使用线程池资源。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @Configuration public class CustomThreadPoolConfig { @Bean(name = "customExecutor") public ThreadPoolTaskExecutor customExecutor() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(3); executor.setMaxPoolSize(5); executor.setQueueCapacity(10); executor.setThreadNamePrefix("custom-"); executor.initialize(); return executor; } }
@Service public class MyService { @Async("customExecutor") public void executeCustomTask() { } }
|
运营平台重写Servlet和SpringCloudGateWay的目的
为了统计日志信息,统计大模型响应成功率与响应速度,校验安全策略,限制访问频次。需要搭建自己的网关,在网关中对于上游服务的请求进行记录与统计。
其主要实现在LargeModelServlet
、ServerInvokeLogServiceImpl
和LargeModelServiceImpl
类中。