我在VPC A中的EC2实例上运行Tableau Server.同时,我在另一个VPC B中创建了一个postgres RDS.现在我想在Tableau Server和RDS之间建立连接.RDS VPC的CIDR为172.31.0.0/16,EC2 VPC的CIDR为10.0.0.0/16.
根据VPC中的A DB实例,在不同VPC中由EC2实例访问,我在VPC A和VPC B,pcx-xyz123之间创建了对等关系.此外,我还为VPC创建了以下路由表.
RDS VPC
Destination Target
172.31.0.0/16 local
10.0.0.0/16 pcx-xyz123
EC2 VPC
Destination Target
10.0.0.0/16 local
172.31.0.0/16 pcx-xyz123
Run Code Online (Sandbox Code Playgroud)
两个路由表都是主要的.每个都有0个子网(不确定这是否重要).
但是,我仍然无法从Tableau Server连接RDS.
这两个实例由同一帐户创建.它们都列在美国东部(俄亥俄州).所以我假设他们在同一个地区.另外两者都有us-east-2
他们的主机名.从我的PC,我可以使用psql命令或pgAdmin连接到RDS.
为什么我不能连接这两个实例?
编辑:我在与Tableau Server相同的VPC的同一子网内创建了另一个EC2 Linux实例,仅用于调试目的.我以相同的方式配置了对等和路由表,并将子网与路由表相关联.但是,我仍然无法连接到EC2 Linux实例上的RDS.
我在Angular 5中使用了真棒字体的UI。由于我正在使用sass
,因此我.angular-cli.json
在安装后在其中添加了以下行font-awesome
"styles": [
"../node_modules/font-awesome/scss/font-awesome.scss",
"../node_modules/bootstrap/scss/bootstrap.scss",
"styles.scss"
],
Run Code Online (Sandbox Code Playgroud)
一些图标的工作原理例如
<i class="fa fa-money blue-text"></i>
<i class="fa fa-code blue-text"></i>
Run Code Online (Sandbox Code Playgroud)
然而,更多的不是。例如,我想将此条形图图标与一起使用fas fa-chart-bar
,但不显示任何内容。诸如此类的东西fas fa-camera-retro
仅显示为一个怪异的正方形,而不是实际的图标。
为什么某些图标不起作用?有没有办法检查我安装的font-awesome软件包中是否存在这些CSS类?
刚刚在中搜索bar
图表node_modules\font-awesome\css\font-awesome.css
,仅fa-bar-chart
存在,不存在fa-chart-bar
。我安装了最新的字体-很棒(4.7.0)。为什么他们的网站说fa-chart-bar
。刚可以使用它fa fa-bar-chart
。为什么fa
不是fas
我
我正在使用部署在AWS Beanstalk上的Spring Boot开发Rest API.这项服务可能每天都会受到成千上万客户的欢迎.因此,我想了解Spring Boot处理多个请求的能力.
从我在Spring-Boot中读到的内容:同时处理多个请求以及如何在Spring引导中拥有线程安全控制器,看起来Spring Boot可以在控制器线程安全的同时处理请求.
如果同时向同一端点发出两个请求以进行更新,控制器是一个接一个地处理请求还是同时处理两个并行线程?如果是后者,每个线程都有自己的实体管理器吗?有没有办法实现线程池来根据EC2实例的容量限制线程数?顺便说一下,我如何根据估计的请求数量决定一个实例应该有多大?
rest multithreading spring-data-jpa spring-boot amazon-elastic-beanstalk
在使用Spring的这个Web应用程序中,我为不同的部署环境创建了几个应用程序属性文件.它们指定不同的数据库连接配置.
application-dev.properties
application-qa.properties
application-stg.properties
application-prod.properties
Run Code Online (Sandbox Code Playgroud)
根据spring doc的推荐方法是在运行时将spring.profiles.active设置为JVM选项,例如:
-Dspring.profiles.active=prod
Run Code Online (Sandbox Code Playgroud)
但是,我应该怎么做才能使用mvn install将应用程序部署为war.我该如何设置弹簧轮廓?我正在使用Eclipse.
编辑:我在下面设置了JVM选项.因为我从tomcat得到以下错误,所以当我将它部署为战争时,似乎没有被maven接收:
Failed to instantiate [javax.sql.DataSource]: Factory method 'dataSource' threw exception
Run Code Online (Sandbox Code Playgroud) 我已经使用Spring Security在Spring Boot Application中实现了身份验证.
控制身份验证的主类应该是websecurityconfig:
@Configuration
@EnableWebSecurity
@PropertySource(value = { "classpath:/config/application.properties" })
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private RestAuthenticationSuccessHandler authenticationSuccessHandler;
@Autowired
private RestAuthenticationEntryPoint restAuthenticationEntryPoint;
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic()
.and()
.csrf().disable()
.sessionManagement().sessionCreationPolicy(
SessionCreationPolicy.STATELESS)
.and()
.exceptionHandling()
.authenticationEntryPoint(restAuthenticationEntryPoint)
.and()
.authorizeRequests()
.antMatchers("/").permitAll()
.antMatchers("/login").permitAll()
.antMatchers("/logout").permitAll()
.antMatchers("/ristore/**").authenticated()
.anyRequest().authenticated()
.and()
.formLogin()
.successHandler(authenticationSuccessHandler)
.failureHandler(new SimpleUrlAuthenticationFailureHandler());
}
Run Code Online (Sandbox Code Playgroud)
因为我做的OAuth,我有AuthServerConfig
和ResourceServerConfig
也.我的主要应用程序类如下所示:
@SpringBootApplication
@EnableSpringDataWebSupport
@EntityScan({"org.mdacc.ristore.fm.models"})
public class RistoreWebApplication extends SpringBootServletInitializer
{
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override …
Run Code Online (Sandbox Code Playgroud) 我下载了SymmetricDS,一种用于数据库复制的工具,并尝试在我的 Windows7 机器上运行它。该程序可以从命令行启动,它适用于 Windows 终端。但是我总是更喜欢Git Bash
命令行的东西。sym
但是,当我运行命令时,出现错误:
Error: Could not find or load main class org.jumpmind.symmetric.SymmetricLauncher
Run Code Online (Sandbox Code Playgroud)
这个工具是用Java编写的。我安装了 JDK 1.8。Git的Bash的继承所有环境变量,包括$PATH
和$JAVA_HOME
从Windows。但是为什么它会抱怨找不到类?
该sym
命令实际上是在运行以下命令:
exec "$SYM_JAVA" $SYM_OPTIONS -cp "$CLASSPATH" org.jumpmind.symmetric.SymmetricLauncher "$@"
Run Code Online (Sandbox Code Playgroud)
所有的 jars 都位于lib
应用程序的根目录下。类路径定义在sym.service.conf
内部conf
目录中:
# Java Classpath
wrapper.java.classpath.1=patches
wrapper.java.classpath.2=patches/*
wrapper.java.classpath.3=lib/*.jar
wrapper.java.classpath.4=web/WEB-INF/lib/*.jar
# Application main class and arguments
wrapper.app.parameter.1=org.jumpmind.symmetric.SymmetricLauncher
Run Code Online (Sandbox Code Playgroud)
我echo $CLASSPATH
在exec
打印出类路径之前添加了它,它似乎确实让所有这些都正确:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/patches:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/patches/*:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/lib/*:
/c/Users/dnj0109/Apps/symmetric-server-3.8.29/web/WEB-INF/lib/*
Run Code Online (Sandbox Code Playgroud) 我在AWS上的DC/OS(Mesos)集群上安装了Kafka.启用了三个代理并创建了一个名为"topic1"的主题.
dcos kafka topic create topic1 --partitions 3 --replication 3
Run Code Online (Sandbox Code Playgroud)
然后我编写了一个Producer类来发送消息,并编写了一个Consumer类来接收它们.
public class Producer {
public static void sendMessage(String msg) throws InterruptedException, ExecutionException {
Map<String, Object> producerConfig = new HashMap<>();
System.out.println("setting Producerconfig.");
producerConfig.put("bootstrap.servers",
"172.16.20.207:9946,172.16.20.234:9125,172.16.20.36:9636");
ByteArraySerializer serializer = new ByteArraySerializer();
System.out.println("Creating KafkaProcuder");
KafkaProducer<byte[], byte[]> kafkaProducer = new KafkaProducer<>(producerConfig, serializer, serializer);
for (int i = 0; i < 100; i++) {
String msgstr = msg + i;
byte[] message = msgstr.getBytes();
ProducerRecord<byte[], byte[]> record = new ProducerRecord<>("topic1", message);
System.out.println("Sent:" + msgstr);
kafkaProducer.send(record); …
Run Code Online (Sandbox Code Playgroud) 我正在使用Flask-restplus构建REST API.我的一个端点从客户端上传文件并运行一些分析.这项工作最多使用30秒.我不希望这项工作阻止主要进程.因此,端点将立即返回200或201的响应,该作业仍可以运行.结果将保存到数据库中,稍后将检索该数据库.
对于长期工作,我似乎有两种选择.
线程相对简单.但问题是,Flask app的线程数有限制.在独立的Python应用程序中,我可以使用队列作为线程.但这是REST api,每个请求调用都是独立的.我不知道是否有办法维护全局队列.因此,如果请求超出了线程限制,它将无法获取更多请求.
使用Celery和Redis的任务队列可能是更好的选择.但这只是一个概念验证的事情,时间线有点紧张.使用Flask设置Celery,Redis并不容易,我在我的dev机器上遇到了很多麻烦.它将部署在AWS上,这有点复杂.
我想知道这个案子是否有第三种选择?
音频文件通过API发送给我们,该API是Base64编码的PCM格式。我需要将其转换为PCM,然后转换为WAV进行处理。
我能够使用以下代码解码->保存到pcm->从pcm读取->另存为wav。
decoded_data = base64.b64decode(data, ' /')
with open(pcmfile, 'wb') as pcm:
pcm.write(decoded_data)
with open(pcmfile, 'rb') as pcm:
pcmdata = pcm.read()
with wave.open(wavfile, 'wb') as wav:
wav.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))
wav.writeframes(pcmdata)
Run Code Online (Sandbox Code Playgroud)
如果我可以将输入字符串解码为二进制并将其另存为wav,会容易得多。所以我在python中将字符串转换为二进制中 做了类似的事情
decoded_data = base64.b64decode(data, ' /')
ba = ' '.join(format(x, 'b') for x in bytearray(decoded_data))
with wave.open(wavfile, 'wb') as wav:
wav.setparams((1, 2, 16000, 0, 'NONE', 'NONE'))
wav.writeframes(ba)
Run Code Online (Sandbox Code Playgroud)
但是我错a bytes-like object is required, not 'str'
了wav.writeframes
。
也尝试过base54.decodebytes()
并得到相同的错误。
正确的方法是什么?
我正在使用 boto3 SQS 客户端从 AWS SQS FIFO 队列接收消息。
def consume_msgs():
sqs = None
try:
sqs = boto3.client('sqs',
region_name=S3_BUCKET_REGION,
aws_access_key_id=AWS_ACCESS_KEY_ID,
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
except Exception:
logger.warning('SQS client error {}'.format(sys.exc_info()[0]))
logger.error(traceback.format_exc())
### more code to process message
Run Code Online (Sandbox Code Playgroud)
该应用程序使用upstart
. 大部分时间都可以正常工作。但有时当我在代码更改后重新启动服务时,应用程序会退出并显示以下错误
2018-10-06 01:29:38,654 WARNING SQS client error <class 'KeyError'>
2018-10-06 01:29:38,658 WARNING SQS client error <class 'KeyError'>
2018-10-06 01:29:38,663 ERROR Traceback (most recent call last):
File "/home/ec2-user/aae_client/app/run.py", line 194, in consume_msgs
aws_secret_access_key=AWS_SECRET_ACCESS_KEY)
File "/home/ec2-user/aae_client/env/lib64/python3.6/dist-packages/boto3/__init__.py", line 83, in client
return _get_default_session().client(*args, **kwargs)
File "/home/ec2-user/aae_client/env/lib64/python3.6/dist-packages/boto3/session.py", line …
Run Code Online (Sandbox Code Playgroud) python ×3
java ×2
rest ×2
spring ×2
spring-boot ×2
amazon-ec2 ×1
amazon-rds ×1
amazon-sqs ×1
amazon-vpc ×1
angular ×1
apache-kafka ×1
base64 ×1
bash ×1
boto3 ×1
botocore ×1
celery ×1
classpath ×1
css ×1
dcos ×1
decode ×1
eclipse ×1
flask ×1
font-awesome ×1
git ×1
html ×1
jvm ×1
maven ×1
queue ×1
wav ×1
web-services ×1